{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# MFE 230P: ASSIGNMENT I\n",
    "**YOUR STUDENT ID** \\\\ YOUR NAME \\\\ YOUR GROUP NAME"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. Convexity"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### A. Convex Maximization\n",
    "\n",
    "Some authors obtain the maximum eigenvalue of a positive semi-definite matrix $A\\in\\mathbb{R}^{n\\times n}$ from the following optimization problem\n",
    "\n",
    "$$\\max_{x} x^\\top A x \\text{ subject to } \\|x\\|_2 = 1$$\n",
    "\n",
    "while others instead write \n",
    "\n",
    "$$\\max_{x} x^\\top A x \\text{ subject to } \\|x\\|_2 \\leq 1$$\n",
    "\n",
    "Despite the fact that the unit sphere $\\{ x \\mid \\|x\\|_2 = 1\\}$ is a subset (more or less the shell) of the unit ball $\\{x \\mid \\|x\\|_2 \\leq 1\\}$, the two formulations are equivalent (meaning both problems produce the same minimizer) so long as $A \\neq \\mathbf{0}$. In fact, more generally, maximizing a convex function $f:\\mathbb{R}^n \\mapsto\\mathbb{R}$ over any non-empty closed set $\\mathcal{X} \\subset \\mathbb{R}^n$\n",
    "\n",
    "$$\\max_{x} f(x) \\text{ subject to } x \\in \\mathcal{X}$$\n",
    "\n",
    "is equivalent to maximizing $f$ over the [convex hull](https://en.wikipedia.org/wiki/Convex_hull) of $\\mathcal{X}$\n",
    "\n",
    "$$\\max_{x} f(x) \\text{ subject to } x \\in \\mathbf{conv}(\\mathcal{X})$$\n",
    "\n",
    "Prove that this claim is indeed true.\n",
    "\n",
    "Utility maximization problems with convex preferences can be modeled as convex maximization programs, where the feasible region—defined by budget constraints—is often a [convex polytope](https://en.wikipedia.org/wiki/Convex_polytope). What does the above result suggest about where the optimal basket of goods will lie?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SOLUTION.\n",
    "\n",
    "_Your solution here._"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### B. Transaction Cost Conventions\n",
    "\n",
    "Transaction costs play a key role in designing successful trading strategies: If expected profits cannot be justified by their costs, then the investor should not transact. Each broker provides his/her own transaction cost to incentivise certain trading behavior. Consider solving the portfolio optimization\n",
    "\n",
    "$$\\min_x f(x) + \\lambda \\sum_i T_i(x_i)$$\n",
    "\n",
    "where $x \\in \\mathbb{R}^n$ is a vector of portfolio weights such that $x_i$ is the proportion of total funds allocated to the $i^{th}$ asset, $f$ is some measure of risk, and $T_i$ is a function describing transaction cost on $x_i$ weighted by a scalar $\\lambda > 0$. In other words, we want to minimize risk while placing a penalty $\\lambda$ on transaction costs. For simplicity, let's suppose that $\\forall i,j: T_i = T_j$, meaning the same transaction cost protocol applies to all assets.\n",
    "\n",
    "Below is a set of figures charting $T_i$ as a function of $x_i$:\n",
    "\n",
    "<img src=\"transaction_costs.pdf\">\n",
    "\n",
    "Derive a mathematical expression that models each curve, explain whether or not $T_i$ can be written as a convex function of $x_i$, and intutively rationalize what type of behavior the broker is encouraging by imposing these costs. What conclusion can you draw about the relationship between convex costs and diversification?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SOLUTION.\n",
    "\n",
    "_Your solution here._\n",
    "\n",
    "**<font color='purple'>Purple.</font>**\n",
    "\n",
    "**<font color='red'>Red.</font>**\n",
    "\n",
    "**<font color='blue'>Blue.</font>**\n",
    "\n",
    "**<font color='green'>Green.</font>**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. Clustering"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### A. $k$-Means Loss is decreasing in $k$\n",
    "\n",
    "Recall that $k$-means clustering can be expressed as the following mathematical program\n",
    "\n",
    "$$p^\\star(k) = \\min_{C_j} \\sum_{j=1}^k \\left\\{ \\frac{1}{\\left|\\Omega_j\\right|} \\sum_{i\\in\\Omega_j} \\|x_i - C_j\\|_2 \\right\\}$$\n",
    "\n",
    "where $x_i\\in\\mathbb{R}^n$ is the $i^{th}$ example and $\\Omega_j = \\left\\{i \\mid \\forall l\\neq j: \\|x_i - C_j\\|_2 \\leq \\|x_i - C_l\\|_2\\right\\}$. Show that $p^\\star(k+1)\\leq p^\\star(k)$ for all $k \\geq 1$. What are the qualitative implications of this result when applying clustering in practice?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SOLUTION.\n",
    "\n",
    "_Your solution here._"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### B. Lloyd's Algorithm Implementation\n",
    "\n",
    "Write a `Python` implementation of Lloyd's algorithm in a function `kmeans` using the template provided in the next cell below. You may not use any external packages to complete this problem aside from `numpy`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SOLUTION."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "def kmeans(data, k = 2, total_iter=100):\n",
    "    \"\"\"\n",
    "    data: An (n times p) numpy array with rows representing n observations of dimension p.\n",
    "    k: An integer specifying the number of desired clusters.\n",
    "    total_iter: The total number of iterations to perform.\n",
    "    \n",
    "    Outputs an array of length n containing cluster assignments.\n",
    "    \"\"\"\n",
    "\n",
    "    # your implementation here\n",
    "    \n",
    "    return cluster_assignments"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### C. Clusterpath Implementation\n",
    "\n",
    "Write a `Python` implementation of $\\ell_1$-clusterpath\n",
    "\n",
    "$$\\min_{\\mu_i,\\mu_j} \\sum_{i=1}^n \\| x_i - \\mu_i \\|_2^2 + \\lambda \\sum_{i<j} w_{ij} \\|\\mu_i - \\mu_j\\|_1$$\n",
    "\n",
    "where $x_i$ is a row vector denoting the $i^{th}$ observation and $w_{ij} = \\exp\\left\\{-\\|x_i - x_j\\|_2^2\\right\\}$. A template is provided in the next cell below. You may not use any external packages to complete this problem aside from `cvxpy`, `numpy`, and the function `enumerate_centroids` provided in the next cell. A list of `cvxpy` functions can be accessed [here](http://www.cvxpy.org/en/latest/tutorial/functions/).\n",
    "\n",
    "Intuitively, what role do the fusion penalty weights $w_{ij}$ play in clusterpath? What do you expect to occur when $\\forall i,j: w_{ij} = 1$? "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SOLUTION."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import cvxpy as cvx\n",
    "\n",
    "def enumerate_centroids(centroids):\n",
    "    \"\"\"Given a n x p matrix of centroids outputted from cvxpy,\n",
    "    where each of the n rows represents a centroid, will return\n",
    "    an n x 1 array enumerating centroids.\"\"\"\n",
    "\n",
    "    unique = {} # stores unique centroids and numbers\n",
    "    enumeration = [] # to store cluster number\n",
    "    i = 0 # cluster number\n",
    "\n",
    "    for row in np.round(centroids, 3):\n",
    "\n",
    "        key = tuple(row)\n",
    "        value = unique.get(key)\n",
    "\n",
    "        if value is not None:\n",
    "            enumeration.append(value)\n",
    "        else:\n",
    "            unique[key] = i # add cluster to dictionary\n",
    "            enumeration.append(i)\n",
    "            i += 1 # increment counter by one\n",
    "\n",
    "    return np.array(enumeration)\n",
    "\n",
    "def clusterpath(data, lamb=1, gamma=1):\n",
    "    \"\"\"\n",
    "    data: An (n times p) numpy array with rows representing n \n",
    "    observations of dimension p.\n",
    "    lamb: A positive number representing lambda in the clusterpath\n",
    "    problem, which controls how harshly to penalize the fusion\n",
    "    penalties.\n",
    "    gamma: The bandwidth parameter of the exponentially-decaying weights.\n",
    "    \n",
    "    Outputs an array of length n containing cluster assignments.\n",
    "    \"\"\"\n",
    "\n",
    "    # your implementation here\n",
    "    \n",
    "    return cluster_assignments"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Having $w_{ij}$ be decreasing in $\\|x_i - x_j\\|$ means that the fusion penalty on centroids is larger if observations are close to each other and decays small quickly if they are farther apart. Intuitively, this means that fusing two far apart cluster centroids will not decrease the loss substantially, so clusterpath will instead focus on fusing clusters that are adjacent, per say. Focusing on adjancency means capturing local information, like forming clusters that may not necessarily be spherically-shaped. When $w_{ij} = 1$, the fusion penalties are insensitive to distance between observations and therefore will try to fuse the centroids of two points that may be arbitrarily far apart."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### D. Test Your Code\n",
    "\n",
    "Now that you've created the `kmeans` and `clusterpath` functions, we will test them on some simulated data to make sure the results are consistent."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X = np.vstack(\n",
    "    (\n",
    "        np.random.normal(loc=(2,2), size=(10,2)),\n",
    "        np.random.normal(loc=(-2,-2), size=(10,2))\n",
    "    )\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "which creates a $20 \\times 2$ matrix where the first 10 rows are drawn iid from $\\mathcal{N}\\left((2,2),\\mathbb{I}_2\\right)$ and the last 10 are drawn iid from $\\mathcal{N}\\left((-2,-2),\\mathbb{I}_2\\right)$. If your implementation is successful and your parameters are set properly (e.g. $k =2$ in $k$-means), then your clustering function should roughly assign the first set of 10 observations to a different cluster than the second set of 10 observations. For example,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "kmeans(X, k=2, total_iter=100)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, simply execute the following cell and overwrite the provided figure; your results should be similar to the figures displayed below. If your figure looks like [dip-n-dots](http://bfy.tw/Bmxq), then something is wrong with your code."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nrl7oQkREREREREQ2DAUURERERERERGTJFFAQERERERERkSVTQEFERERERERElkwBBRERERERERFZ\nMgUURERERERERGTJFFAQERERERERkSVTQEFERERERERElkwBBRERERERERFZMgUURERERERERGTJ\nFFAQERERERERkSVTQEFERERERERElkwBBRERERERERFZMgUURERERERERGTJFFAQERERERERkSVT\nQEFERERERERElkwBBRERERERERFZMgUURERERERERGTJFFAQERERERERkSVTQEFEREREREREliyy\n1g0QEZGFeXmfwA9wXIdI1F3r5oiIiMgmY63FswGBBdcYIo7eS8s0BRRERNaZbDrHnQu99F7uZ2xg\nnGwqN1sWr4pRt6WW/U/tpbYtSbwqvoYtFRERkY1qMp/j6tgYNyfGGc1myfr+bFlVNEJLIskTWBqC\ngKijFx6blQIKIiLrRGYqy4V3L3P9zG0CLwg9J5vKMXBjiKmBU2SyGXoOd7Lv+d0kaxOr3FoRERHZ\niMayWT4c6Ofq+CjWhp+TynvczE8weO0qXjbDwaZmDjdvIe4qsLDZKKAgIrIO9F65x4nvnSaXyS/6\nmsAPuHbqFrfP9/LkrzxG5962FWyhiIiIbGTWWs6PDPPevV78oEQkIUTODzg5MMCl0VFe6+qmrap6\nBVsp601ZAgp/8zd/w4kTJ6ivr+cv//Ivy1GliMimceXEdT76yblHvj6f9Xj/3z7k8Kv72fPMjjK2\nTKSyaDwiIvJorLW8d6+Xj4eGHrmOqXye716/xmtd3eyoqy9j62Q9K0s2jddee40/+ZM/KUdVIiKb\nyo0zt5cVTJjrzE/Pc/XkjbLUJVKJNB4REXk0x/vvLSuYcF9gLW/evsXtyYkytEoqQVkCCgcPHqSm\npqYcVYmIbBqj/eOc/NHHizo3El/chLLTb55npG9sOc0SqVgaj4iILN3NiXFODQ4s6tyY+/Cvj/eD\nClP5xS/jlMq1ajkUjh07xrFjxwB44403aGlpWa1bLygSiaybtqyGzdZfUJ83g0rsr7WW4/92hkQs\nAbHwc1q6mtnz9A5ae7ZQXV/F1FiK/puDXD5xjcHbw1RVVYVed/ndG3z2f/sUxpgV7MHqq8Tfs6w/\nGo+sD5utv6A+bwaV2F8vCPi3O7dKjikAtjc0cKB5C+21NVRFooxmM9weH+d0/z1GstmS155LTfHZ\n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\nK8455s6dyyOPPMKCBQu6Pawp89RTT/HKK68QBAFLlizhkUceYdasWd0e1pTavHkzP/jBDzh48CB/\n8zd/w/r167s9pCmxbds2/uVf/oUkSbj77rv56le/2u0hTam///u/59VXX2Xu3Lk88cQT3R7OBXHs\n2DGefPJJTp48iXOOz33uc9x7773dHtaUqVarPProo0RRRBzH3HbbbTzwwAPdHpZIx/VbLAKKRxSP\nzBz9Fo/0WywCikfGZGJnz54d/vNPfvIT+8d//Mcujmbqbdu2zaIoMjOzp556yp566qkuj2jqHThw\nwA4ePGiPPvqo7dq1q9vDmRJxHNsf/dEf2eHDhy0MQ/v6179uBw4c6PawptSbb75pu3fvtj/90z/t\n9lAumBMnTtju3bvNzGxoaMj+5E/+ZEb/npMksVKpZGZmYRjan//5n9s777zT5VGJdF6/xSJmikcU\nj8wc/RaP9FssYqZ4ZCxa8gAMDg4O/7lSqeCc6+Jopt51112H7/sAbNiwgRMnTnR5RFNvxYoVLFu2\nrNvDmFK7du1i6dKlLFmyhCAIuOOOO9iyZUu3hzWlrrrqKmbPnt3tYVxQ8+fPHy4GNDAwwPLly2f0\nv2HnHMViEYA4jonjeMb/Hy39qd9iEVA8MlMpHpn5+i0WAcUjY9GSh7rvfe97vPDCCwwODvLoo492\nezgXzHPPPccdd9zR7WFIB5w4cYKFCxcOv164cCE7d+7s4ohkqh09epQ9e/Zw6aWXdnsoUypJEr7x\njW9w+PBh7rnnHi677LJuD0lkSvRrLAKKR2YSxSP9pV9iEVA8kqVvEgqPPfYYJ0+ebHr/wQcf5Oab\nb+ahhx7ioYce4umnn+ZnP/vZtF8TM979Avzwhz/E9302bdp0oYc3JVq5Z5GZolwu88QTT/AHf/AH\nDU82ZyLP8/jbv/1bzp49y3e+8x3279/PqlWruj0skQnrt1gEFI+MpHhEZpp+ikVA8UiWvkkofPOb\n32xpv02bNvH4449P+w/x8e73V7/6Fa+88grf+ta3Zsx0nVZ/xzPVggULOH78+PDr48ePz/iCXv0q\niiKeeOIJNm3axK233trt4Vwws2bN4uqrr2bbtm36AJdpqd9iEVA80o8Uj/SHfo1FQPHIaKqhABw6\ndGj4z1u2bJnxa9u2bdvGv//7v/ONb3yDQqHQ7eFIh6xfv55Dhw5x9OhRoijipZde4qabbur2sKTD\nzIx/+Id/YPny5Xz5y1/u9nCm3OnTpzl79ixQq7C8fft2li9f3uVRiXRev8UioHhkplI8MvP1WywC\nikfG4szMuj2IbvvOd77DoUOHcM6xaNEiHn744RmdSf3jP/5joigaLh5z2WWX8fDDD3d5VFPr5Zdf\n5p//+Z85ffo0s2bNYs2aNfzFX/xFt4fVca+++irf/e53SZKEz372s3zta1/r9pCm1N/93d+xY8cO\nzpw5w9y5c3nggQe46667uj2sKfX222/zrW99i1WrVg0/zXvooYe44YYbujyyqbFv3z6efPJJkiTB\nzLj99tv5vd/7vW4PS6Tj+i0WAcUjikdmjn6LR/otFgHFI2NRQkFEREREREREJkxLHkRERERERERk\nwpRQEBEREREREZEJU0JBRERERERERCZMCQURERERERERmTAlFERERERERERkwpRQEBEREREREZEJ\nU0JBRERERERERCZMCQURERERERERmbD/H7ronJOC9x1hAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1113592e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "kmeans_assignments = kmeans(X, k=3, total_iter=100) # THIS WILL RUN YOUR KMEANS FUNCTION\n",
    "clusterpath_assignments = clusterpath(X, lamb=50) # THIS WILL RUN YOUR CLUSTERPATH FUNCTION\n",
    "\n",
    "########## The following code will plot your clusters. ####################################\n",
    "\n",
    "from matplotlib import pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "x, y = zip(*X)\n",
    "\n",
    "plt.style.use('ggplot')\n",
    "plt.figure(figsize=(18,6))\n",
    "\n",
    "plt.subplot(1,2,2)\n",
    "plt.scatter(x, y, c=kmeans_assignments,\n",
    "            linewidths=20, alpha=.5, marker='o')\n",
    "plt.title(r'$k$-Means on Gaussian Mixture')\n",
    "\n",
    "plt.subplot(1,2,1)\n",
    "plt.scatter(x, y, c=clusterpath_assignments,\n",
    "            linewidths=20, alpha=.5, marker='o')\n",
    "plt.title(r'$\\ell_1$-Clusterpath on Gaussian Mixture')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### E. Grouping Industries by Holdings\n",
    "\n",
    "Executing the next cell below will download a dataset—a la [Professor Damodaran](http://www.stern.nyu.edu/faculty/bio/aswath-damodaran) of NYU Stern—containing insider and institutional holdings as a percent of outstanding stock, classified by industry. Our goal is to use clustering to understand which industries are similar to each other in terms of these holdings. This type of information is relevant to regulators looking to design laws aimed at particular industries based on these findings.\n",
    "\n",
    "The holdings data will be stored in a variable `data`, a `pandas` dataframe object, which will contain the following columns:\n",
    "\n",
    "- `total_num`: Total number of companies in each industry\n",
    "- `ceo`: CEO holdings (percent)\n",
    "- `institutional`: Intitutional holdings (percent)\n",
    "- `insider`: Total insider holdings (percent)\n",
    "\n",
    "Perform $k$-means clustering on the latter three variables for $k \\in \\{2,5,10\\}$ and clusterpath for $\\lambda \\in \\{10, 7, 4\\}$ and $\\gamma = .01$ using the functions you coded previously. For each pair $(k, \\lambda)$ of hyper-parameters, plot each observation on a figure with x-axis representing `institutional`, y-axis representing `insider`, and z-axis representing `ceo`; color-coding each industry by its respective cluster assignment, adjusting size to match `total_num`.\n",
    "\n",
    "Note that since `data` is a table that contains non-numeric information, you will need to perform clustering only on the numerical portion of the table. (You may consider using [the `.as_matrix()` attribute](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.as_matrix.html)). Also, due to the size of the data and the genericness of `cvxpy`'s solution method, `clusterpath` will take several minutes to run."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "data = pd.read_csv( # this will read in the returns data as a csv\n",
    "    '../../data/holdings.csv',\n",
    "    index_col=0, header=0\n",
    ")\n",
    "\n",
    "data.head() # sample of dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SOLUTION.\n",
    "\n",
    "_Your solution here._"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### F. Comment on Results\n",
    "\n",
    "What differences do you notice between the way $k$-means and clusterpath group industries? How do these results change with the variations in $k$ and $\\lambda$? Do some research on a few industries in each cluster: intuitively, do the groupings make sense?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SOLUTION.\n",
    "\n",
    "_Your solution here._"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### G. $\\ell_1$ distance metric\n",
    "\n",
    "Suppose for both $k$-means and clusterpath, we replaced the $\\ell_2$ norm for computing distance to clusters with the $\\ell_1$ norm. Specifically, consider obtaining clusters by solving \n",
    "\n",
    "$$\\min_{C_j} \\sum_{j=1}^k \\left\\{ \\frac{1}{\\left|\\Omega_j\\right|} \\sum_{i\\in\\Omega_j} \\|x_i - C_j\\|_1 \\right\\}$$\n",
    "\n",
    "instead of $k$-means or \n",
    "\n",
    "$$\\min_{\\mu_i,\\mu_j} \\sum_{i=1}^n \\| x_i - \\mu_i \\|_1 + \\lambda \\sum_{i<j} w_{ij} \\|\\mu_i - \\mu_j\\|_1$$\n",
    "\n",
    "instead of clusterpath. Explain qualitatively how this would affect the way clusters were assigned in the previous excercise."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SOLUTION.\n",
    "\n",
    "_Your solution here._"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
